package com.ruoyi.system.service.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.ArAuthenticateMapper;
import com.ruoyi.system.domain.ArAuthenticate;
import com.ruoyi.system.service.IArAuthenticateService;

/**
 * 鉴定规则信息Service业务层处理
 * 
 * @author ruoyi_hsl
 * @date 2022-03-17
 */
@Service
public class ArAuthenticateServiceImpl implements IArAuthenticateService 
{
    @Autowired
    private ArAuthenticateMapper arAuthenticateMapper;

    /**
     * 查询鉴定规则信息
     * 
     * @param recNo 鉴定规则信息ID
     * @return 鉴定规则信息
     */
    @Override
    public ArAuthenticate selectArAuthenticateById(String recNo)
    {
        return arAuthenticateMapper.selectArAuthenticateById(recNo);
    }

    /**
     * 查询鉴定规则信息列表
     * 
     * @param arAuthenticate 鉴定规则信息
     * @return 鉴定规则信息
     */
    @Override
    public List<ArAuthenticate> selectArAuthenticateList(ArAuthenticate arAuthenticate)
    {
        return arAuthenticateMapper.selectArAuthenticateList(arAuthenticate);
    }

    /**
     * 新增鉴定规则信息
     * 
     * @param arAuthenticate 鉴定规则信息
     * @return 结果
     */
    @Override
    public int insertArAuthenticate(ArAuthenticate arAuthenticate)
    {
        arAuthenticate.setCreateTime(DateUtils.getNowDate());
        arAuthenticate.setCreateBy(SecurityUtils.getUsername());
        arAuthenticate.setDelFlag("0");
        arAuthenticate.setRecNo(UUID.randomUUIDPlus());
        return arAuthenticateMapper.insertArAuthenticate(arAuthenticate);
    }

    /**
     * 修改鉴定规则信息
     * 
     * @param arAuthenticate 鉴定规则信息
     * @return 结果
     */
    @Override
    public int updateArAuthenticate(ArAuthenticate arAuthenticate)
    {
        arAuthenticate.setUpdateTime(DateUtils.getNowDate());
        arAuthenticate.setUpdateBy(SecurityUtils.getUsername());
        return arAuthenticateMapper.updateArAuthenticate(arAuthenticate);
    }

    /**
     * 批量删除鉴定规则信息
     * 
     * @param recNos 需要删除的鉴定规则信息ID
     * @return 结果
     */
    @Override
    public int deleteArAuthenticateByIds(String[] recNos)
    {
        return arAuthenticateMapper.deleteArAuthenticateByIds(recNos);
    }

    /**
     * 删除鉴定规则信息信息
     * 
     * @param recNo 鉴定规则信息ID
     * @return 结果
     */
    @Override
    public int deleteArAuthenticateById(String recNo)
    {
        return arAuthenticateMapper.deleteArAuthenticateById(recNo);
    }

    /**
     * 利用用户设定条件查询
     * @param arAuthenticate
     */
    public void query(ArAuthenticate arAuthenticate)
    {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //创建连接
            String url = "jdbc:mysql://192.168.1.77:3306/archives?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true";
            Connection conn = DriverManager.getConnection(url, "root", "123456");
            String sql = "select * from t_user where "+arAuthenticate.getPatternText()+";";
            PreparedStatement stat = conn.prepareStatement(sql);
            //stmt.setString(1, "zhangshan"); //给SQL的"?"(问号)传值。
            ResultSet rs = stat.executeQuery();
            List list = new ArrayList();
            //遍历结果集，这样写就可以了，就是一个循环，有多少条记录，这里就会循环多少次，
            //一次就是一条记录，想像一下就像一个表的一条记录
            //在这里可以做查询出来的数据处理，可以封装成对象之类的(就是把值给它)
            if(rs.next()) { //遍历结果集，这样写就可以了
//                User u = new User();
//                String username = rs.getString("username");
//                String address = rs.getString("password ");
//                u.setUsername(username);
//                u.setAddress(address);
//                list.add(u);
            }
            stat.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
